package Housework_game;

import javax.swing.*;

public class Game {
    /*
    编码题：
     1、创建游戏角色类，该类有体力、魔法力、职业、经验、等级等属性，职业只有骑士和魔法师两种。
    创建打怪方法。如果是骑士消耗体力80，魔法力20。如果是魔法师消耗体力30，魔法力100。
    当体力和魔法力太低时，不能打怪。打怪以后，经验增加50，经验每满1000，等级上升一级，体力和魔法力上限上升10点、体力和魔法力全满。
    创建客栈休息方法。将体力和魔法力恢复到体力和魔法力上限。
    创建自我介绍方法，说明当前角色的职业、体力、魔法力、等级、经验等。
    创建测试类。新建骑士和魔法师两个对象，然后，调用相关的方法。
    */

    public int physical;
    public int maxPhysical;
    public int magic;
    public int maxMagic;
    public String profession;
    public int rank;
    public int experience;


    public Game(){
    }


    public Game(int maxPhysical, int maxMagic, String profession, int rank, int experience) {
        this.maxPhysical = maxPhysical;
        this.physical = this.maxPhysical;
        this.maxMagic = maxMagic;
        this.magic = this.maxMagic;
        this.profession = profession;
        this.rank = rank;
        this.experience = experience;
    }


    public void hit() {
        if ("骑士".equals(this.profession)) {
            if (this.physical < 80 || this.magic < 20) {
                return;
            }
            this.physical -= 80;
            this.magic -= 20;
        }
        if ("魔法师".equals(this.profession)) {
            if (this.physical < 30 || this.magic < 100) {
                return;
            }
            this.physical -= 30;
            this.magic -= 100;
        }

        int before = this.experience / 1000;
        this.experience += 50;
        int after = this.experience / 1000;
        if (after > before) {
            this.rank++;
            this.maxMagic += 10;
            this.maxPhysical += 10;
            this.magic = this.maxMagic;
            this.physical = this.maxPhysical;
        }
    }


    /*
      休息
     */
    public void resume() {
        this.magic = this.maxMagic;
        this.physical = this.maxPhysical;
    }


    /*
     信息查看
     */
    public void getInform() {
        JOptionPane.showMessageDialog(null, "角色:" + this.profession + "  " + "体力值:" + this.physical +"/"+this.maxPhysical+ "  " +
                "魔法值:" + this.magic +"/"+this.maxMagic+ "  " + "等级:" + this.rank + "  " + "经验:" + this.experience);
    }
}




             /*
               作业（旧）
              */
//    public String roleChoose(){
//        String cha;
//        do {
//            cha = JOptionPane.showInputDialog(null,"选择你希望的角色：1-骑士  2-魔法师");
//            switch (cha){
//                case "骑士":
//                    JOptionPane.showMessageDialog(null,"选择成功，你的角色选择为\n\n骑士");
//                    break;
//                case "魔法师":
//                    JOptionPane.showMessageDialog(null,"选择成功，你的角色选择为\n\n魔法师");
//                    break;
//                default:
//                    JOptionPane.showMessageDialog(null,"选择有误，重新选择骑士或魔法师");
//                    break;
//            }
//        }while (!(cha.equals("骑士")||cha.equals("魔法师")));
//        return cha;
//    }
//
//    public int gameChoose(){
//        String c = JOptionPane.showInputDialog(null,"选择你要进行的游戏操作\n1-打怪\n" +
//                "2-查看当前游戏信息\n0-退出游戏");
//        switch (c){
//            case "1":
//                return 1;
//            case "2":
//                return 2;
//        }
//        return 0;
//    }
//
//    public int gameMethod(String occupation){
//        int right;
//        if (occupation.equals("骑士")&&(physical>80&&magic>20)){
//            physical -= 80;
//            magic -= 20;
//            right = 1;
//        }else if (occupation.equals("魔法师")&&(physical>30&&magic>100)){
//            physical -= 30;
//            magic -= 100;
//            right = 1;
//        }else {
//            JOptionPane.showMessageDialog(null,"体力（魔法力）不足，无法打怪,等待状态恢复");
//            right = 0;
//        }
//        return right;
//    }
//
//    public void rankImprove(){
//       experience += 50;
//        if (experience >= 1000){
//            rank += 1;
//            magic += 10;
//            physical += 10;
//            experience -= 1000;
//        }
//    }
//
//   public void resume(){
//        physical = 100+rank*10;
//        magic = 100+rank*10;
//        JOptionPane.showMessageDialog(null,"状态恢复完成");
//    }
//
//    public void getInform(){
//        JOptionPane.showMessageDialog(null,"角色:"+profession+"  "+"体力值:"+physical+"  "+
//                "魔法值:"+magic+"  "+"等级:"+rank+"  "+"经验:"+experience);
//    }
//
//}
